package com.jasonzqshen.ifm.collections.treeCollection;

import java.util.Collection;

import com.jasonzqshen.ifm.utils.*;

public interface NonLeaf {
    /**
     * Get all children of the nodes
     * 
     * @return
     */
    public Collection<NonRoot> getChildren();

    /**
     * Get child according tree node id
     * 
     * @param id
     * @return
     */
    public NonRoot getChild(Identifier id);

    /**
     * Add child
     * 
     * @param child
     */
    public void addChild(NonRoot child);

    /**
     * remove child of the node
     * 
     * @param child
     */
    public boolean removeChild(NonRoot child);

    /**
     * contain child
     * 
     * @param child
     */
    public boolean containChild(NonRoot child);
}
